"""
特殊属性:
    1.__dict__查询类对象或实例对象所绑定的属性字典或方法的字典
    2.__bases__ 查询类的父类类型的元组
    3.__class__ 查询对象所属于的类
    4.__bases__ 查询类的父类类型的元组
    5.__base__ 查询类的最近的父类
    6.__mro__ 查看类的层次结构
    7.__subclasses__() 查询类的子类列表
"""

# 显示对象绑定了哪些属性
print(dir(object))


class A:
    pass


class B:
    pass


class C(B, A):
    def __init__(self, name, age):
        self.name = name
        self.age = age


class D(A):
    pass


c = C("Jack", 20)
print("----------------------------------")
# 实例对象.__dict__ 查询实例对象属性的字典
print(c.__dict__)
# 类对象.__dict__ 查询类对象的属性字典
print(C.__dict__)
# __class__ 查询对象所属于的类
print(c.__class__)
# __bases__ 查询类的父类类型的元组
print(C.__bases__)
# __base__ 查询类的最近的父类
print(C.__base__)
# __mro__ 查看类的层次结构
print(C.__mro__)
# __subclasses__() 查询类的子类列表
print(A.__subclasses__())
